package proteus.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;

import proteus.excepcion.DAOExcepcion;
import proteus.modelo.Alquiler;
import proteus.modelo.Cliente;
import proteus.modelo.Servicio;
import proteus.util.ConexionBD;


public class ServicioDAO extends BaseDAO{
	

	public void insertar(Servicio vo) throws DAOExcepcion {
        System.out.println("ServicioDAO: insertar(Servicio vo)");
        String query = "INSERT INTO servicio(NoTipoServicio, TxDescripcionServicio,ssCostoServicio) VALUES (?,?,?)";
        Connection con = null;
        PreparedStatement stmt = null;
        try {
                con = ConexionBD.obtenerConexion();
                stmt = con.prepareStatement(query);
                stmt.setString(1, vo.getNoTipoServicio());
                stmt.setString(2, vo.getTxDescripcionServicio());
                stmt.setDouble(3, vo.getSsCostoServicio());
                int i = stmt.executeUpdate();
                if (i != 1) {
                        throw new SQLException("No se pudo insertar");
                }
        } catch (SQLException e) {
                System.err.println(e.getMessage());
                throw new DAOExcepcion(e.getMessage());
        } finally {
                this.cerrarStatement(stmt);
                this.cerrarConexion(con);
        }
}

	
	
	public int validar_servicio(String ParamServicio) throws DAOExcepcion
	{
		int intReturn=0;
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		
		String query = "";
		query +="SELECT COUNT(*) AS CANTIDAD FROM servicio WHERE ";
		query +="NoTipoServicio=?";
		
		
		try{
			con = ConexionBD.obtenerConexion();
			stmt = con.prepareStatement(query);
			
			
			stmt.setString(1,ParamServicio);		
			

			rs = stmt.executeQuery();
			while (rs.next()) {
			intReturn=rs.getInt("CANTIDAD");	
			}	
			}
			catch (SQLException e)
			{
			throw new DAOExcepcion(e.getMessage());
			}
			finally {
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
			}	
			return intReturn;
	}
	
	/*  JV 01/04/2012  */
	
	public Collection<Servicio> listar() throws DAOExcepcion {
        //System.out.println("AlquilerDAO: listar()");
        
        Collection<Servicio> c = new ArrayList<Servicio>();
        Connection con = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        try {
                con = ConexionBD.obtenerConexion();
                String query = " SELECT CoServicio,NoTipoServicio,TxDescripcionServicio,SsCostoServicio from servicio ";
                stmt = con.prepareStatement(query);
                rs = stmt.executeQuery();
                while (rs.next()) {
                	
                	Servicio vo = new Servicio();
                    vo.setCoServicio(rs.getInt("CoServicio"));
                    vo.setNoTipoServicio(rs.getString("NoTipoServicio"));                 
                    vo.setTxDescripcionServicio(rs.getString("TxDescripcionServicio"));
                    vo.setSsCostoServicio(rs.getDouble("SsCostoServicio"));
                    c.add(vo);
                }
        } catch (SQLException e) {
                System.err.println(e.getMessage());
                throw new DAOExcepcion(e.getMessage());
        } finally {
                this.cerrarStatement(stmt);
                this.cerrarConexion(con);
        }
        return c;
    }
	
	
}
